Human languages are rich and complicated, including huge vocabularies with complex grammar and contextual meaning. Machine interpretation of human language, even in a very limited way, is an extremely complex task and continues to be the subject of extensive research. Providing users with the ability to communicate their desires to an automated system without requiring users to learn a machine specific language or grammar would decrease learning costs and greatly improve system usability. However, users become quickly frustrated when automated systems and machines are unable to interpret user input correctly, resulting in unexpected results.
Natural language input can be useful for a wide variety of applications, including virtually every software application with which humans are intended to interact. Typically, during natural language processing the natural language input is separated into tokens and mapped to one or more actions provided by the software application. Each application can have a unique set of actions. Consequently, it can be both time-consuming and repetitive for software developers to draft code to interpret natural language input and map the input to the appropriate action for each application.
The Internet in particular has provided users with a mechanism for obtaining information regarding any suitable subject matter. For example, various websites are dedicated to posting text, images, and video relating to world, national, and/or local news. A user with knowledge of a Uniform Resource Locator (URL) associated with one of such websites can simply enter the URL into a web browser to be provided with the website and access content thereon. Another conventional manner of locating desired information from the Internet is through utilization of a search engine. For instance, a user can enter a word or series of words into a search field and thereafter initiate the search engine (e.g., through depression of a button, one or more keystrokes, voice commands, . . . ). The search engine then utilizes search algorithms to locate websites related to the word or series of words entered by the user into the search field, and the user can then select one of the websites returned by the search engine to review content therein.